package com.hotel.comm.bean.lucene;

import com.hotel.comm.bean.EnumConstants.ActionType;
import com.hotel.comm.bean.EnumConstants.IndexType;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;

/**
 * 所有需要索引的类都必须实现这个接口
 *
 * @author XuSemon
 * @date 2015-4-23
 */
public interface IndexableBean {
    /**
     * 获取索引动作类型
     *
     * @return
     */
    public ActionType getActionType();

    /**
     * 获取索引类型
     *
     * @return
     */
    public IndexType getType();

    /**
     * 获取索引存储的Document
     *
     * @return
     */
    public Document getDoc();

    /**
     * 解析Document
     *
     * @param doc
     * @return
     */
    public IndexableBean parse(Document doc);

    /**
     * 获取索引删除的Term
     *
     * @return
     */
    public Term getTerm();
}
